import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from matplotlib import rcParams

# rcParams['font.family'] = 'STHeiti'    # Mac
rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'SimSun', 'FangSong', 'KaiTi']
rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

"""
折线图 plot
条形图 bar
饼图  pie
散点图 scatter
箱线图 boxplot
多个图标
组合图
"""

# 折线图
# 创建图表并创建
plt.figure(figsize=(10, 8))
month = ['1月', '2月', '3月', '4月', '5月', '6月', '7月']
# sales = [120, 130, 140, 100, 120, 145, 135]
a_profit = [20, 30, 40, -10, 20, 50, 40]
b_profit = [15, 40, 35, 10, 30, 60, 50]

plt.plot(month, a_profit, label='产品A', marker='o', linestyle='-', color='y', linewidth=2)
plt.plot(month, b_profit, label='产品B', marker='o', linestyle='--', color='g', linewidth=2)

# 添加标题和标签
plt.title('2025年月度净利润额', color='r', fontsize=20)

plt.xlabel('月份', fontsize=10)
plt.ylabel('净利润额（万元）', fontsize=10)

# 添加网格线
# plt.grid(True, alpha=0.3)
plt.grid(axis='y', alpha=0.3)

# 设置刻度字体大小
plt.xticks(rotation=0, fontsize=20)
plt.yticks(rotation=60, fontsize=20)    # rotation设置旋转角度


# 设置y轴的范围
plt.ylim(-20, 100)

# 添加图例
plt.legend(loc='upper left')

# 在每个数据点上显示数值
for x, y in zip(month, a_profit):
    plt.text(x, y+1, str(y), ha='center', va='bottom', color='b', fontsize=10)
for x, y in zip(month, b_profit):
    plt.text(x, y+1, str(y), ha='center', va='bottom', color='r', fontsize=10)

# 显示图表
plt.show()
